package org.apache.ibatis.common.reflection;

/**
 * @Name ReflectorFactory
 * @Description: 反射类工厂接口
 * @Version v1.0.0
 * @Author: lichao
 * @Date: 2024-04-25 17:22:21
 **/
public interface ReflectorFactory {

    /**
     * 判断是否开启了缓存功能
     *
     * @return boolean 结果
     * @version v1.0.0
     * @author lichao
     * @date 2024-04-25 17:24:16
     */
    boolean isClassCacheEnbaled();

    /**
     * 设置缓存开关
     *
     * @param classCacheEnabled 缓存开关
     * @version v1.0.0
     * @author lichao
     * @date 2024-04-25 17:25:06
     */
    void setClassCacheEnabled(boolean classCacheEnabled);

    /**
     * 生产（或从缓存中查找） Reflector 反射器实例
     *
     * @param type 反射器类型
     * @return org.apache.ibatis.common.reflection.Reflector 结果
     * @version v1.0.0
     * @author lichao
     * @date 2024-04-25 17:25:47
     */
    Reflector findForClass(Class<?> type);

}
